#!/bin/bash

# 企洺星官网演示脚本

echo "🎉 欢迎使用企洺星官网项目！"
echo ""

# 检查Docker环境
check_docker() {
    if ! command -v docker &> /dev/null; then
        echo "❌ Docker未安装，请先安装Docker"
        echo "   安装指南：https://docs.docker.com/get-docker/"
        exit 1
    fi
    
    if ! command -v docker-compose &> /dev/null; then
        echo "❌ Docker Compose未安装，请先安装Docker Compose"
        echo "   安装指南：https://docs.docker.com/compose/install/"
        exit 1
    fi
    
    echo "✅ Docker环境检查通过"
}

# 显示项目信息
show_info() {
    echo "📋 项目信息："
    echo "   项目名称：企洺星官网"
    echo "   技术栈：Vue.js 3 + ThinkPHP 6 + MySQL + Redis"
    echo "   部署方式：Docker Compose"
    echo ""
}

# 显示功能特性
show_features() {
    echo "✨ 功能特性："
    echo "   🏠 响应式首页设计"
    echo "   📱 移动端适配"
    echo "   🎨 现代化UI界面"
    echo "   📝 内容管理系统"
    echo "   📊 数据统计分析"
    echo "   🔒 安全防护机制"
    echo "   ⚡ 高性能优化"
    echo "   🐳 容器化部署"
    echo ""
}

# 显示访问信息
show_access() {
    echo "🌐 访问地址："
    echo "   前端网站：http://localhost"
    echo "   后端API：http://localhost/api"
    echo "   数据库管理：http://localhost:8080"
    echo "   健康检查：http://localhost/health"
    echo ""
    echo "👤 默认账号："
    echo "   数据库：root / root123456"
    echo "   管理员：admin / admin123"
    echo ""
}

# 显示管理命令
show_commands() {
    echo "🛠️  管理命令："
    echo "   启动服务：./start.sh"
    echo "   停止服务：./stop.sh"
    echo "   查看日志：docker-compose logs -f"
    echo "   重启服务：docker-compose restart"
    echo "   查看状态：docker-compose ps"
    echo ""
}

# 主菜单
show_menu() {
    echo "请选择操作："
    echo "1) 启动项目"
    echo "2) 停止项目"
    echo "3) 查看状态"
    echo "4) 查看日志"
    echo "5) 重启服务"
    echo "6) 清理数据"
    echo "7) 查看帮助"
    echo "8) 退出"
    echo ""
    read -p "请输入选项 (1-8): " choice
}

# 启动项目
start_project() {
    echo "🚀 启动企洺星官网项目..."
    ./start.sh
}

# 停止项目
stop_project() {
    echo "🛑 停止企洺星官网项目..."
    ./stop.sh
}

# 查看状态
show_status() {
    echo "📊 服务状态："
    docker-compose ps
    echo ""
}

# 查看日志
show_logs() {
    echo "📝 服务日志："
    echo "按 Ctrl+C 退出日志查看"
    echo ""
    docker-compose logs -f
}

# 重启服务
restart_services() {
    echo "🔄 重启服务..."
    docker-compose restart
    echo "✅ 服务重启完成"
    echo ""
}

# 清理数据
clean_data() {
    echo "🧹 清理数据..."
    read -p "确定要清理所有数据吗？这将删除数据库和上传文件 (y/N): " confirm
    if [[ $confirm == [yY] ]]; then
        docker-compose down -v
        docker system prune -f
        echo "✅ 数据清理完成"
    else
        echo "❌ 操作已取消"
    fi
    echo ""
}

# 显示帮助
show_help() {
    echo "📖 帮助信息："
    echo ""
    echo "项目结构："
    echo "  backend/     - 后端API项目 (ThinkPHP 6.x)"
    echo "  frontend/    - 前端项目 (Vue.js 3.x)"
    echo "  nginx/       - Nginx配置文件"
    echo "  database/    - 数据库初始化脚本"
    echo "  uploads/     - 上传文件目录"
    echo ""
    echo "配置文件："
    echo "  docker-compose.yml - Docker编排配置"
    echo "  backend/config/    - 后端配置文件"
    echo "  frontend/vite.config.js - 前端构建配置"
    echo ""
    echo "常用命令："
    echo "  docker-compose up -d     - 启动所有服务"
    echo "  docker-compose down      - 停止所有服务"
    echo "  docker-compose logs -f   - 查看实时日志"
    echo "  docker-compose ps        - 查看服务状态"
    echo "  docker-compose restart   - 重启所有服务"
    echo ""
    echo "故障排除："
    echo "  1. 端口冲突：修改docker-compose.yml中的端口映射"
    echo "  2. 权限问题：运行 sudo chown -R 1000:1000 uploads/"
    echo "  3. 服务异常：查看日志 docker-compose logs [service-name]"
    echo "  4. 数据重置：运行 docker-compose down -v && docker-compose up -d"
    echo ""
}

# 主循环
main() {
    check_docker
    show_info
    show_features
    
    while true; do
        show_menu
        case $choice in
            1)
                start_project
                show_access
                show_commands
                ;;
            2)
                stop_project
                ;;
            3)
                show_status
                ;;
            4)
                show_logs
                ;;
            5)
                restart_services
                ;;
            6)
                clean_data
                ;;
            7)
                show_help
                ;;
            8)
                echo "👋 感谢使用企洺星官网项目！"
                exit 0
                ;;
            *)
                echo "❌ 无效选项，请重新选择"
                echo ""
                ;;
        esac
    done
}

# 运行主程序
main
